import Vue from 'vue'
const db = uniCloud.database();
const queryDb = uniCloud.databaseForJQL()
const type_table_name = 'type-list';
const report_table_name = 'report-list';






function get_openId() {
	return new Promise((resolve, reject) => {
		uni.login({
			provider: 'weixin',
			success: res => {
				uniCloud.callFunction({
					name: 'get-open-id',
					data: {
						code: res.code
					},
					success: (res2) => {
						console.log('Openid为', res2.result);
						resolve(res2.result);
					},
					fail: (error) => {
						console.log('获取失败', error);
						reject(error);
					}
				});
				
			}
		});
	});

}





//======================新的================
//获取资源列表
function get_data_list(type, isAll, pageNo, pageSize) {
	
	var map = {};

	var skip = pageNo * pageSize
	var tableNaame = 'resource-list';
	if (isAll == "0") {
		map.type = type
	}
	console.log('获取资源的列表', type, 'isAll', isAll,'pageNo=',pageNo,'pageSize=',pageSize,'skip=',skip);
	return new Promise((resolve, reject) => {
		db.collection(tableNaame).where(map).orderBy('releaseTime', 'desc').skip(skip).limit(pageSize).get().then((res) => {
			// res 为数据库查询结果
			console.log('获取资源的列表', res.result.data);
			if (res.result.errCode == 0) {
				resolve(res.result.data);
			} else {
				resolve([]);
			}
		}).catch((err) => {
			console.log('获取资源的列表-失败', err.message);
			reject(err);
		});
	});

};
//获取分类
function get_type_list() {
	return new Promise((resolve, reject) => {
		db.collection(type_table_name).orderBy('sortValue', 'desc').get().then((res) => {
			console.log('获取分类', res.result);
			if (res.result.errCode == 0) {
				resolve(res.result.data);
			} else {
				reject([]);
			}
		}).catch((err) => {
			console.log('获取分类', err.message);
			reject([]);
		});
	});
};

//搜索列表
function search_data_list(pageNo, pageSize, searchKey) {
	var map = {};
	if (pageNo == 1) {
		pageNo = 0
	}
	var skip = pageNo * pageSize

	var tableNaame = 'resource-list';
	const condition = {
		'title': new RegExp(searchKey, "ig")
	};
	return new Promise((resolve, reject) => {
		db.collection(tableNaame).where(condition).skip(skip).limit(pageSize).get().then((res) => {
			// res 为数据库查询结果
			console.log('搜索列表结果', res.result);
			if (res.result.errCode == 0) {
				resolve(res.result.data);
			} else {
				resolve([]);
			}
		}).catch((err) => {
			console.log('查询加群列表-失败', err.message);
			reject(err);
		});
	});

};
//获取我的资源列表
function getMyResources_data_list(idList) {
	console.log('获取我的资源列表idList=', idList);
	const dbCmd = db.command // 取指

	var tableNaame = 'resource-list';
	const condition = {
		'_id':dbCmd.in(idList)
	}
	return new Promise((resolve, reject) => {
		db.collection(tableNaame).where(condition).get().then((res) => {
			console.log('获取我的资源列表', res.result);
			if (res.result.errCode == 0) {
				resolve(res.result.data);
			} else {
				resolve([]);
			}
		}).catch((err) => {
			console.log('获取我的资源列表-失败', err.message);
			reject(err);
		});
	});

};

//添加意见数据
function add_suggestion_data(dataModel) {
	console.log('添加意见数据===2', dataModel);
	var table_name = 'suggestion-list'
	return new Promise((resolve, reject) => {
		db.collection(table_name).add(dataModel).then((res) => {
			// res 为数据库查询结果
			console.log('添加意见数据结果回调', res);
			resolve(true);
		}).catch((err) => {
			console.log(err.message)
			console.log('添加意见数据-失败结果回调', err.message);
			resolve(false);
		});
	});
};

//根据id 获取资源详情
function get_resources_details(dataId) {
	console.log('根据id获取资源详情===', dataId);
	var table_name = 'resource-list'
	return new Promise((resolve, reject) => {
		db.collection(table_name).where({
			_id:dataId
		}).get().then((res) => {
			// res 为数据库查询结果
			console.log('资源详情', res.result);
			if (res.result.errCode == 0) {
				resolve(res.result.data[0]);
			} else {
				reject('获取失败');
			}
		}).catch((err) => {
			console.log('资源详情-失败结果回调', err.message);
			reject(err.message);
		});
	});
};

//获取app 配置
function get_app_configure() {
	var tableName = 'app-configure'
	return new Promise((resolve, reject) => {
		db.collection(tableName).get().then((res) => {
			console.log('获取app配置', res.result);
			if (res.result.errCode == 0) {
				resolve(res.result.data[0]);
			} else {
				reject('获取app配置失败');
			}
		}).catch((err) => {
			console.log('获取app配置失败', err.message);
			reject(err.message);
		});
	});
};

export {
	//获取openId
	get_openId,
	//获取资源列表数据 
	get_data_list,
	//获取type列表
	get_type_list,
	//搜索
	search_data_list,
	//添加意见反馈
	add_suggestion_data,
	//获取我的资源列表
	getMyResources_data_list,
	//根据id 获取资源详情 分享进入使用
	get_resources_details,
	//获取app 配置
	get_app_configure
}